#!/usr/bin/env ruby

require 'test/unit'
require 'dayrange'

class TC_QuizTests < Test::Unit::TestCase
  # These are the simple test cases given in the quiz
  def test_given
    assert_equal('Mon-Sun', DayRange.new(1,2,3,4,5,6,7).to_s)
    assert_equal('Mon-Wed, Sat, Sun', DayRange.new(1,2,3,6,7).to_s)
    assert_equal('Mon, Wed-Sat', DayRange.new(1,3,4,5,6).to_s)
    assert_equal('Tue-Thu, Sat, Sun', DayRange.new(2,3,4,6,7).to_s)
    assert_equal('Mon, Wed, Thu, Sat, Sun', DayRange.new(1,3,4,6,7).to_s)
    assert_equal('Sun', DayRange.new(7).to_s)
    assert_equal('Mon, Sun', DayRange.new(1,7).to_s)
    assert_raises(ArgumentError) { DayRange.new(1,8) }
  end
  
  def test_day_translator
    dt = DayRange::DayTranslator.new
    assert_equal(1, dt.make_number('Mon'))
    assert_equal(1, dt.make_number('M'))
    assert_equal('Mon', dt.make_string(1))
    assert_equal('M', dt.make_string(1, 1))
  end
end